/**
 * 数据库操作相关的类型定义文件
 *
 * 本文件包含了所有数据库操作需要的通用类型定义，包括：
 * - Response 响应类：统一的数据库操作响应格式
 * - 各种数据库表的接口定义
 * - 查询选项接口
 *
 * 作者：系统生成
 * 创建时间：2024
 */

/**
 * 统一的数据库操作响应类
 * 用于包装所有数据库操作的返回结果
 *
 * @template T 数据类型
 */
export class Response<T> {
  /** 操作是否成功 */
  status: boolean;
  /** 操作结果消息 */
  message: string;
  /** 返回的数据 */
  data: T | null;
  /** 总记录数（用于分页） */
  total?: number;
  /** 错误信息 */
  error?: string;

  constructor(
    status: boolean = false,
    message: string = "",
    data: T | null = null,
    total?: number
  ) {
    this.status = status;
    this.message = message;
    this.data = data;
    this.total = total;
  }

  /** success属性作为status的别名，保持向后兼容 */
  get success(): boolean {
    return this.status;
  }

  set success(value: boolean) {
    this.status = value;
  }
}

/**
 * 余额数据表接口
 * 对应数据库中的 balance_data 表结构
 */
export interface IBalanceData {
  /** 主键ID，自增 */
  id?: number;
  /** 数据键名 */
  key: string;
  /** 数据值，JSON字符串格式 */
  value: string;
  /** 创建时间 */
  created_at?: string;
  /** 更新时间 */
  updated_at?: string;
}
